package org.dromara.nft.domain;

import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serial;
import java.util.Objects;

/**
 * nft对象 nft_item
 *
 * @author Lion Li
 * @date 2024-05-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("nft_item")
public class NftItem extends TenantEntity {

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;
        NftItem nftItem = (NftItem) o;
        return Objects.equals(id, nftItem.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(super.hashCode(), id);
    }

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId(value = "id")
    private String id;

    /**
     * 1.珍宝 2.混沌源晶 3.混沌余烬
     */
    private String nftType;

    /**
     * 标题
     */
    private String title;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 是否鉴定  （珍宝）
     */
    private String jd;

    /**
     * 装备等级（珍宝）
     */
    private String zbdj;

    /**
     * 财宝值 （珍宝、混沌余烬、混沌源晶）
     */
    private String cbz;

    /**
     * 混沌能量 （珍宝、混沌余烬、混沌源晶）
     */
    private String hdnl;

    /**
     * 单位财富成本  单位成本=卖价0.1÷财富值10=0.01 （珍宝、混沌余烬、混沌源晶）
     */
    private BigDecimal dwcbz;

    /**
     * 继承财富 继承财富=财富值×0.8  （珍宝）
     */
    private BigDecimal jccfz;

    /**
     *  继承单位财富成本=售价÷继承财富 （珍宝）
     */
    private BigDecimal jccfcb;


    /**
     * 综合性价比=（财宝值×财宝值成本+混沌能量×混沌能量成本）÷售价
     */
    private BigDecimal zhxjb;

    /**
     * 完整数据包
     */
    private String data;

    /**
     * 详情属性
     */
    private String attribute;

    /**
     * 物品id
     */
    private Long itemId;

    /**
     * 版本时间戳
     */
    private String versionNum;

    /**
     * 备注
     */
    private String remark;

    /**
     * 商品详情最后更新时间
     */
    private Date getAttributeTime;

    /**
     * 商品编号
     */
    private String goodsNo;
}
